package a

import (
	"time"

	"server/a0"

	"github.com/gin-gonic/gin"
)

func A证req(c *gin.Context, req any) bool {
	if err := c.ShouldBindQuery(req); err != nil {
		a0.FailWithMessage(err.Error(), c)
		// c.Abort() // 终止后续中间件
		return false // 绑定失败
	}
	return true // 绑定成功
}

type S列表req struct {
	StartCreatedAt *time.Time `json:"startCreatedAt" form:"startCreatedAt"`
	EndCreatedAt   *time.Time `json:"endCreatedAt" form:"endCreatedAt"`
	a0.PageInfo
	A修改开始点     *time.Time `json:"修改开始点"`
	A修改结束点     *time.Time `json:"修改结束点"`
	Sort       string     `json:"sort" form:"sort"`
	Order      string     `json:"order" form:"order"`
	IDS        []string   `json:"ids" form:"ids"`
	A关联查询字段名s  []string   `json:"关联查询字段名s" form:"关联查询字段名s[]"`
	A多字段搜索字段名s []string   `json:"多字段搜索字段名s" form:"多字段搜索字段名s[]"`
	A多字段搜索关键词  string     `json:"多字段搜索关键词" form:"多字段搜索关键词"`
	A筛选组       string     `json:"筛选组" form:"筛选组"`
	// url中传参数的方式(Query方式，非body)，不能直接解析成map,前端可以先转换成json字符串，后端再解析
	// A筛选组       []map[string]any `json:"筛选组" form:"筛选组[]"`
	A仅自己  bool   `json:"仅自己" form:"仅自己"`
	A树结构  bool   `json:"树结构" form:"树结构"`
	A用户id string `json:"用户id" form:"用户id"`
}

type S关联表req struct {
	A外键组 string `json:"外键组" form:"外键组"`
}

type S修改req struct {
	ID  uint   `json:"id" form:"id"`
	A动作 string `json:"动作" form:"动作"`
}
